package com.cmc.cloud.cmclink.doc.rpcservice.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;

/**
 * 投船信息
 * @author heguo
 * @date 2025/10/23
 */
@Schema(description = "投船信息")
@Data
@ToString(callSuper = true)
public class LaneVesselRespVO {
    @Schema(
            description = "主键",
            requiredMode = Schema.RequiredMode.REQUIRED,
            example = "20566"
    )
    private Long id;
    @Schema(
            description = "航线编号,关联航线主表",
            requiredMode = Schema.RequiredMode.REQUIRED
    )
    private @NotBlank(
            message = "航线编号,关联航线主表不能为空"
    ) @Length(
            max = 50,
            message = "航线编号支持最大长度50"
    ) String laneCode;
    @Schema(
            description = "船名表中的船舶编号",
            requiredMode = Schema.RequiredMode.REQUIRED
    )
    private @NotBlank(
            message = "船名表中的船舶编号不能为空"
    ) @Length(
            max = 30,
            message = "船舶编号支持最大长度30"
    ) String vesselCode;
    @Schema(
            description = "进口总箱量"
    )
    private Double totalBsaIn;
    @Schema(
            description = "进口总重量"
    )
    private Double totalWeightIn;
    @Schema(
            description = "进口总高箱量"
    )
    private Double totalHqIn;
    @Schema(
            description = "进口总冷箱量"
    )
    private Double totalRfIn;
    @Schema(
            description = "出口总箱量"
    )
    private Double totalBsaOut;
    @Schema(
            description = "出口总重量"
    )
    private Double totalWeightOut;
    @Schema(
            description = "出口总高箱量"
    )
    private Double totalHqOut;
    @Schema(
            description = "出口总冷箱量"
    )
    private Double totalRfOut;
    @Schema(
            description = "进口状态，true:启用，false:停用",
            requiredMode = Schema.RequiredMode.REQUIRED
    )
    private Boolean statusIn;
    @Schema(
            description = "出口状态，true:启用，false:停用",
            requiredMode = Schema.RequiredMode.REQUIRED
    )
    private Boolean statusOut;
    @Schema(
            description = "状态，true:启用，false:停用",
            requiredMode = Schema.RequiredMode.REQUIRED,
            example = "true"
    )
    private Boolean enabled;
    @Schema(
            description = "备注",
            example = "你猜"
    )
    private String remark;
    @Schema(
            description = "录入时间",
            requiredMode = Schema.RequiredMode.REQUIRED
    )
    private LocalDateTime createTime;
}
